The present invention relates to graphics processing in a computer system, more particularly to a method and system for selecting a MIP map level when performing texture processing.
A conventional computer graphics system can display graphical images of objects on a display. The display includes a plurality of display elements, known as pixels, typically arranged in a grid. In order to display objects, the conventional computer graphics system typically breaks each object into a plurality of polygons. A conventional system then renders the polygons, pixel by pixel, in a particular order.
Each of the polygon covers, or intersects, some number of the pixels in the display. Data for a portion of a polygon which intersects a particular pixel is termed the fragment for that polygon and that pixel. Thus, each polygon typically includes a number of fragments. The fragment includes data relating to the polygon at the pixel the fragment intersects. For example, the fragment typically includes information relating to color, blending modes, and texture. In order to render each fragment of a polygon, a graphics processing system must process the color and texture for the fragment. The texture can be thought of as another color that is typically derived from a texture map. Thus, in most conventional systems, texture from the texture map and color are blended together to obtain a final color value for the fragment.
Although texture mapping generally improves the quality of the image, artifacts may be introduced by texture mapping. For example, aliasing may occur for objects which are far from the viewing plane. Aliasing occurs because polygons which are used to render distant objects are sampled at a lower frequency than the texture. For example, a texture can be considered to be composed of texels, which correspond to pixels. A polygon which is close to the viewing plane typically intersects at least as many pixels as there are texels in the texture. However, a polygon which is far from the viewing plane and, therefore, small, intersects fewer pixels than there are texels in the texture to be mapped to the polygon. When the texture is mapped to the polygon, visual artifacts such as unwanted patterns or flashing can occur.
In order to improve image quality, multum in parvo (MIP) maps are used for texture processing. Using MIP maps for texture mapping, an object""s size and distance from the viewing plane can be accounted for. Each MIP map contains data for a texture on several levels. Each level of the MIP map contains data for the texture at a different resolution. For example, the first MIP map level may contain the texture at a first, full resolution. The second MIP map level contains a lower resolution version of the texture. Typically, the second MIP map level is at one-half of the resolution of the first MIP map level. The third MIP map level contains an even lower resolution version of the texture. The third MIP map level is typically at one-fourth the resolution of the first MIP map level. Higher MIP map levels contain lower resolution versions of the texture.
In order to use the MIP map, the appropriate MIP map level(s) for a pixel being rendered are selected. The texture for this MIP map level can then be used in texture mapping for the pixel being rendered. In some conventional methods, the MIP map level is selected using a ratio which depends upon a conventional display area and a conventional texture area. The display area is the area occupied on the display (display space) by a polygon or a portion of a polygon. The conventional texture area is the corresponding area in the texture (texture space). The conventional display area divided by the conventional texture area provides a ratio which is used to select a MIP map level and, in some conventional systems, interpolate between MIP map levels. Because the ratio is used, the MIP map level selected has texels occurring at a frequency close to the frequency at which pixels occur in the region being rendered. As a result, aliasing can be reduced.
Although use of MIP maps improves image quality, artifacts may still occur. Polygons being rendered are often tilted with respect to the viewing plane. In other words, perspective may change the appearance of the objects and the polygons that make up the objects. Because they may be tilted, the projection of the polygon onto the viewing plane (the portion of the polygon that is visible to a viewer) may be compressed in one or more directions. Although some conventional methods take perspective into account, the ability of some of the conventional methods to do so is relatively limited. As a result, the MIP map level selected for some pixels in the polygon may be a poor match for the pixels. Thus, the image quality degrades. Another conventional method for selecting a MIP map level accounts for perspective by determining the maximum compression along the edges of a polygon. However, such a conventional method for selecting a MIP map level is relatively calculation intensive and, therefore, slow.
Accordingly, what is needed is a system and method for selecting a MIP map level which has fewer visible artifacts. It would also be desirable if the method and system do not require a large number of calculations per pixel. The present invention addresses such a need.
The present invention provides a method and system for processing textures for a graphical image on a display. The graphical image includes a plurality of polygons. Each of the plurality of polygons includes at least one fragment. The fragment includes at least one texture and a w-value for the fragment. Each polygon has a plurality of vertices, a display area, and a texture space area Each of the vertices has a vertex w-value. The at least one texture is associated with at least one MIP map. The MIP map includes a plurality of MIP map levels. The method and system comprise determining a selection value for each fragment of a polygon of the plurality of polygons. The selection value includes xc2xd multiplied by the base two logarithm of the texture area divided by the display area and divided by the product of the vertex w-values for each of the plurality of vertices. The selection value also includes 3/2 multiplied by the base two logarithm of the w-value for each of the at least one fragment. The selection value also includes a MIP map bias. The method and system also comprise selecting at least one of the plurality of MIP map levels map for each fragment based on the selection value for each fragment.
According to the system and method disclosed herein, the present invention provides a more accurate mechanism for selecting MIP map levels. Consequently, image quality is improved.